package com.foreknow.springboot.threaddemo;

public class Ticket extends Thread{
    private static int tickets = 100;
    @Override
    public void run() {
        while (true){
            //synchronized (){} （叫线程同步 可以理解为加锁） ：当某个线程正在执行的时候，其他线程可能会修改票数，所以
            //我们要使用synchronized加锁，当前线程在执行的时候，其他线程无法修改数据。
            synchronized (Ticket.class){
                tickets--;
                if (tickets<=0){
                    break;
                }
                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(getName()+":这是第"+tickets+"张票");
                }
            }
    }

    public static void main(String[] args) {
        Ticket t1 = new Ticket();
        Ticket t2 = new Ticket();
        Ticket t3 = new Ticket();
        Ticket t4 = new Ticket();
        t1.setName("窗口1");
        t2.setName("窗口2");
        t3.setName("窗口3");
        t4.setName("窗口4");
        t1.start();
        t2.start();
        t3.start();
        t4.start();
    }
}
